home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / DTP / DTP_TEX / H220.ZIP / WP2X110.ZIP / WP2X.CAT < prev    next >
Text File  |  1991-09-01  |  20KB  |  522 lines

  1.  
  2.  
  3.  
  4. WP2X(1)                  USER COMMANDS                    WP2X(1)
  5.  
  6.  
  7.  
  8. NAME
  9.       wp2x - A WordPerfect 4.2 to whatever converter
  10.  
  11. SYNOPSIS
  12.      wp2x [ -s ] [ -n_b_l_i_p ] configfile wpfile
  13.  
  14. DESCRIPTION
  15.      _W_p_2_x is intended to convert _s_i_m_p_l_e files stored in  WordPer-
  16.      fect  4.2 format into any other document processing language
  17.      that uses plain text files.  Examples  include  TeX,  LaTeX,
  18.      troff, GML, and SCRIPT.
  19.  
  20.      _W_p_2_x reads a configuration file and a WordPerfect 4.2  input
  21.      file,  and uses the information in them to produce an output
  22.      file, which is sent to stdout.  If  the  configuration  file
  23.      cannot  be found, a suffix of ._c_f_g is appended.  the current
  24.      directory  is   searched,   as   well   as   the   directory
  25.      /_u_s_r/_l_o_c_a_l/_l_i_b/_w_p_2_x  ,  and the directories specified by the
  26.      environment variables _P_A_T_H , _D_P_A_T_H , and _W_P_2_X_L_I_B .
  27.  
  28.      The following codes are processed by _w_p_2_x:
  29.  
  30.          Hard returns.
  31.          Sort returns.
  32.          Hyphens of all ages.
  33.          Hard page breaks.
  34.          Margin settings.
  35.          Line spacing.
  36.          Tab characters.
  37.          Boldface, underline, redline.
  38.          Indented paragraphs.  (The "Indent" code.)
  39.          Footnotes and endnotes.
  40.          Footnote numbers inside footnotes.
  41.          Extended IBM codes.
  42.          Superscript, subscript, overstrike.
  43.          Hyphenation on/off.
  44.          Justification on/off.
  45.          Widow/Orphan control.
  46.          Hyphenation zone.
  47.          Decimal alignment character.
  48.          Page centering.
  49.          Page number position.
  50.          Headers and footers.
  51.          Single-page suppression of header/footer information.
  52.          Lots of other stuff.
  53.  
  54.      The following codes are recognized, but not translated.
  55.  
  56.          Page number column
  57.          Underline mode
  58.          Column definitions
  59.          Footnote attributes
  60.          Automatic paragraph numbering
  61.          Marked text
  62.          Invisible text
  63.  
  64.      These  codes  are  not  translated  because  documents  that
  65.      require  these  codes  typically  would  require significant
  66.      hand-editing.  Hence, there's no point in trying to  emulate
  67.      something you're going to delete anyway.  (Remember, _w_p_2_x is
  68.      not intended to be used as an automated conversion  program.
  69.      Rather,  it  is  intended to be used as a single step in the
  70.      document conversion process, which  gets  most  of  the  the
  71.      grunt  work  of  conversion done and out of the way, so that
  72.      you can concentrate your efforts on converting the  trickier
  73.      parts of the document.  The object of the game is to produce
  74.      a readable conversion, rather than a perfect conversion.)
  75.  
  76.      As the program runs, a dot is printed to  _s_t_d_e_r_r  for  every
  77.      1024  characters converted.  This can be suppressed with the
  78.      -s switch, and the interval between dots can be changed with
  79.      the -n switch.
  80.  
  81. OPTIONS
  82.      -s   Suppresses all non-error output  to  _s_t_d_e_r_r,  including
  83.           the  _t_y_p_e_o_u_t  banner,  the  progress dots, and warnings
  84.           about undefined expansions.
  85.  
  86.      -n_b_l_i_p
  87.           Every _b_l_i_p tokens, a dot is emitted to  _s_t_d_e_r_r,  unless
  88.           the  -s  switch  is  given.  The value _b_l_i_p must appear
  89.           imediately following  the  -n  without  an  intervening
  90.           space.   If  no  -n switch is supplied, then a value of
  91.           1024 is assumed.
  92.  
  93. USAGE
  94.      The configuration file controls how the  file  is  converted
  95.      from WordPerfect 4.2 format.  Each line of the configuration
  96.      file is of the form
  97.  
  98.                       identifier="list of codes"
  99.  
  100.      where the list of codes is a string which will be placed  in
  101.      the  output  stream  whenever  the corresponding WordPerfect
  102.      code  is  encountered.   Standard  C-style  backslash-escape
  103.      sequences  are  recognized,  as well as \xFF for hex values.
  104.      You do not have to backslash-protect a newline.  Some  iden-
  105.      tifiers  supply replacable parameters, which can be interpo-
  106.      lated as follows:
  107.  
  108.      %1   interpolate first parameter as a decimal integer.
  109.  
  110.      %2   interpolate second parameter as a decimal integer.
  111.  
  112.      %c   interpolate first parameter as an ASCII character.
  113.  
  114.      %\n  interpolate a newline if the most-recently-output char-
  115.           acter was not already a newline.  (The _\_n can be either
  116.           the C-style escape sequence, or an actual newline char-
  117.           acter.)  Use  this  if the expansion must take place at
  118.           the beginning of a line.  (For example,  _t_r_o_f_f  control
  119.           characters  must  appear  as the first character in the
  120.           line in order to take effect.) This sequence  is  mean-
  121.           ingful  only  at  the  beginning  of  the string; if it
  122.           appears elsewhere, it is flagged as erroneous.
  123.  
  124.      %%   interpolate a percent-sign.
  125.  
  126.      A percent sign followed by any other character is considered
  127.      an  error.   It  is also an error to interpolate a parameter
  128.      that is not applicable to the identifier being defined.  You
  129.      may  interpolate  the  parameters  as  many times as, and in
  130.      whatever order, you wish.  (With the exception  of  the  %_\_n
  131.      code.)
  132.  
  133.      Here follows a list of the  accepted  identifiers.   In  the
  134.      discussion,  `%1'  represents  the first parameter, and `%2'
  135.      the second.  Remember that the character version  of  %1  is
  136.      available as `%c'.
  137.  
  138.      BEGIN          Expanded at the beginning of the file.
  139.      END            Expanded at the end of the file.
  140.      COMMENT        Expanded when wp2x needs to insert a  comment
  141.                     into  the  output.   The comment is passed as
  142.                     %s.
  143.  
  144.      PageNo         Insert current page number
  145.      RomanPage      Set page number to %1, and set  roman-numeral
  146.                     mode
  147.      ArabicPage     Set page number to %1, and set arabic-numeral
  148.                     mode
  149.  
  150.      Tab            What to do when you see a tab character.
  151.      BeginTabs      Emitted  when  tab  settings  are  about   to
  152.                     change.  The BeginTabs code should delete all
  153.                     existing tabs and prepare for  new  tab  set-
  154.                     tings  to start.  All tab values are given in
  155.                     columns measured from the physical left  edge
  156.                     of the paper.  (Not from the left margin.)
  157.      SetTab         Set  a  normal  (left-justified)  tabstop  at
  158.                     column %1.
  159.      SetTabCenter   Set a centered tabstop at column %1.
  160.      SetTabRight    Set a right-justified tabstop at column %1.
  161.      SetTabDecimal  Set a decimal tab at column %1.
  162.      EndTabs        Finish the setting of tabstops.
  163.  
  164.      For example, if the WordPerfect file contains  a  code  that
  165.      says  `Set  new  tabstops as follows:  Regular tab at column
  166.      15, a centered tab at column 40, a  right-justified  tab  at
  167.      column 59, and a regular tab at column 60', then the follow-
  168.      ing expansions are made in succession:
  169.  
  170.          BeginTabs
  171.          SetTab(15)
  172.          SetTabCenter(40)
  173.          SetTabright(59)
  174.          SetTab(60)
  175.          EndTabs
  176.  
  177.      HSpace
  178.           Hard (nonbreakable) space.
  179.      HPg  Hard page break.
  180.      CondEOP
  181.           Force a new page if fewer than %1 half-lines remain  on
  182.           current page.
  183.  
  184.      HRt  Hard return.
  185.      SRt  Soft return.
  186.  
  187.      -    Breakable hyphen.
  188.      --   Breakable hyphen, appearing at the end of a line.
  189.      =    Non-breakable hyphen.
  190.      \-   Discretionary hyphen.
  191.      \--  Discretionary hyphen, appearing at the end of a line.
  192.  
  193.      Marg Set left margin at %1 characters and right margin at %2
  194.           characters.
  195.      TopMargin
  196.           Set top margin to %1 lines.
  197.      PageLength
  198.           Set page length to %1 lines.
  199.  
  200.      SS   Single spacing.
  201.      DS   Double spacing.
  202.      1.5S One-and-a-half spacing.
  203.      TS   Triple spacing.
  204.      LS   Other line spacing.  %1 is twice the  desired  spacing.
  205.           (For example, a request for 2.5-spacing sets %1=5.)
  206.      LPI  Set %1 lines per inch (%1 is either 6 or 8)
  207.  
  208.      Bold Begin boldface
  209.      bold End boldface
  210.      Und  Begin underline
  211.      und  End underline
  212.      Red  Begin redline
  213.      red  End redline
  214.      Strike
  215.           Begin strikeout
  216.      strike
  217.           End strikeout
  218.      Rev  Begin reverse video
  219.      rev  End reverse video
  220.  
  221.      Over Begin overstrike
  222.      over End overstrike
  223.      Sup  Begin superscript
  224.      sup  End superscript
  225.      Sub  Begin subscript
  226.      sub  End subscript
  227.  
  228.      UpHalfLine
  229.           Advance printer up 1/2 line
  230.      DownHalfLine
  231.           Advance printer down 1/2 line
  232.      AdvanceToHalfLine
  233.           Advance to absolute  vertical  position.   %1  is  what
  234.           WordPerfect  thinks  the current vertical page position
  235.           is, in half-lines.  %2 is the desired position, also in
  236.           half-lines.
  237.  
  238.      Indent
  239.           Expanded when an "Indent" code appears.
  240.      DIndent
  241.           Expanded when a "left-and-right-indent" code appears.
  242.      indent
  243.           Expanded at the end of an indented paragraph.
  244.      MarginRelease
  245.           Margin release.  %1 is the number of characters to move
  246.           left.
  247.  
  248.      Center
  249.           Center current line
  250.      center
  251.           End centering
  252.      CenterHere
  253.           Center line around current column
  254.      centerhere
  255.           End centering
  256.  
  257.      Align
  258.           Begin alignment
  259.      align
  260.           End alignment
  261.      AlignChar
  262.           Set alignment character
  263.      FlushRight
  264.           Begin flush right
  265.      flushright
  266.           End flush right
  267.  
  268.      Math Begin math mode
  269.      math End math mode
  270.      MathCalc
  271.           Begin math calc mode
  272.      MathCalcColumn
  273.           Math calc column
  274.  
  275.      SubTtl
  276.           Do subtotal
  277.      IsSubTtl
  278.           Subtotal entry
  279.      Ttl  Do total
  280.      IsTtl
  281.           Total entry
  282.      GrandTtl
  283.           Do grand total
  284.  
  285.      Col  Begin column mode
  286.      col  End column mode
  287.  
  288.      Fn   Expanded at the beginning of a footnote.
  289.      fn   Expanded at the end of a footnote.
  290.      En   Expanded at the beginning of an endnote.
  291.      en   Expanded at the end of an endnote.
  292.      SetFn#
  293.           Set the number for the next footnote to %1.
  294.      FNote#
  295.           Footnote number.
  296.      ENote#
  297.           Endnote number.
  298.      TableMarker
  299.           Insert table of contents here
  300.  
  301.      Hyph Enable hyphenation.
  302.      hyph Disable hyphenation.
  303.      Just Enable justification.
  304.      just Disable justification.
  305.      Wid  Enable widow/orphan protection.
  306.      wid  Disable widow/orphan protection.
  307.      HZone
  308.           The hyphenation zone.  %1 and %2 are  the  two  magical
  309.           values that WordPerfect uses to control hyphenation.
  310.      DAlign
  311.           Set the decimal alignment character to that whose ASCII
  312.           value is %1.  (`%c' is useful here.)
  313.  
  314.      Header
  315.           Begin header text
  316.      header
  317.           End header text
  318.      Footer
  319.           Begin footer text
  320.      footer
  321.           End footer text
  322.  
  323.      Supp Suppress page number/header/footer information for  one
  324.           page.   %1 argument is a bit field which describes what
  325.           sort of suppression is desired.  Here's what  the  bits
  326.           mean:
  327.                     1 = all
  328.                     2 = page number
  329.                     4 = page numbers moved to bottom
  330.                     8 = all headers
  331.                    16 = header a
  332.                    32 = header b
  333.                    64 = footer a
  334.                   128 = footer b
  335.      CtrPg
  336.           Center page vertically
  337.  
  338.      SetFont
  339.           Change pitch or font.  %1 is the desired pitch.  (Nega-
  340.           tive  means  proportionally-spaced.)   %2  is  the font
  341.           number.
  342.      SetBin
  343.           Select paper bin to %1 = 0, 1, ...
  344.  
  345.      PN0  No page numbering.
  346.      PN1  Page number in top left.
  347.      PN2  Page number in top center.
  348.      PN3  Page number in top right.
  349.      PN4  Page number on top outside corners (even/odd).
  350.      PN5  Page number in lower left.
  351.      PN6  Page number in bottom center.
  352.      PN7  Page number in lower right.
  353.      PN8  Page number on bottom outside corners (even/odd).
  354.  
  355.      If no expansion is supplied for an identifier, then  nothing
  356.      is  emitted  to  _s_t_d_o_u_t,  but  a  warning message is sent to
  357.      _s_t_d_e_r_r.  This warning message will appear at most  once  per
  358.      identifier,  and  it  can be suppressed completely by the -s
  359.      option.
  360.  
  361.      The special identifier _t_y_p_e_o_u_t causes its  replacement  text
  362.      to  be  displayed on the screen every time the configuration
  363.      file is read.  This is useful for  identification  messages,
  364.      or reminders to the user.
  365.  
  366.      A special identifier is any  character  enclosed  in  single
  367.      quotation marks, which represent themselves.  For example,
  368.  
  369.         'A'="{\\alpha}"
  370.  
  371.      causes the string "{\alpha}" to be  emitted  when  an  A  is
  372.      encountered.  This could also have been written as
  373.  
  374.         '\xE0'="{\\alpha}"
  375.  
  376.      if the character A has ASCII value 0xE0.  (Which is true for
  377.      the IBM PC encoding.)
  378.  
  379.      If no definition exists for a particular special  character,
  380.      it  is  transmitted  undisturbed.  If a special character is
  381.      encountered from the upper half of the ASCII character  set,
  382.      and  if it has no definition, then a warning message is also
  383.      emitted.  (Which can be suppressed with the -s option.)
  384.  
  385.      Lines beginning with the # character are comments.
  386.  
  387. FILES
  388.      The sample configuration files in  /_u_s_r/_l_o_c_a_l/_l_i_b/_w_p_2_x  give
  389.      you some sort of idea what a `production quality' configura-
  390.      tion file might look like.  They are not intended to be used
  391.      as-is, but rather are meant to be modified to suit your par-
  392.      ticular needs.
  393.  
  394. SEE ALSO
  395.      _t_e_x(1), _l_a_t_e_x(1), _n_r_o_f_f(1), _t_r_o_f_f(1).
  396.  
  397. DIAGNOSTICS
  398.      Error: Cannot open X (reason)
  399.           The file X could not be opened, for the indicated  rea-
  400.           son.
  401.  
  402.      Error: Expecting a hex digit
  403.           Inside a string, you typed the characters `\x', but the
  404.           next character was not a valid hex digit.
  405.  
  406.      Error: string pool overflow
  407.           The configuration  file  contained  too  many  strings.
  408.           Increase the value of POOL_SIZE and recompile.
  409.  
  410.      Error: Unknown identifier X
  411.           The word X was encountered in  the  configuration  file
  412.           when _w_p_2_x expected a token identifier like `HRt'.  Most
  413.           likely, you either misspelled it, or you got your  quo-
  414.           tation marks out of sync.
  415.  
  416.      Error: Identifier not followed by = sign
  417.           After an identifier must come an equals-sign.
  418.  
  419.      Error: Quotation mark expected
  420.           After the equals-sign must come a quotation mark.
  421.  
  422.      Error: X: `%\n' not at start of expansion
  423.           The  expansion  for  the  identifier  X  contained  the
  424.           indicated  sequence  of characters somewhere other than
  425.           the beginning of the string.  The  `%\n'  interpolation
  426.           code is meaningful only at the beginning of a string.
  427.  
  428.      Error: X: invalid escape `%x'
  429.           The expansion for the identifier X contained an invalid
  430.           escape.   Either  you  used `%1', `%2' or `%c' when the
  431.           identifier X does not supply  that  parameter,  or  you
  432.           meant for a genuine percent sign to be output, in which
  433.           case you should put `%%' in the expansion.
  434.  
  435.      Error: Invalid character identifier
  436.           Character identifiers can only be  one  character  long
  437.           (after backslash interpretation).
  438.  
  439.      Warning: Expected XX but received YY.
  440.           The program expected the next byte from the WP file  to
  441.           be  XX,  but the byte YY was encountered instead.  This
  442.           means either that your WP file is damaged, or that  the
  443.           program  is seriously confused.  (Or both.) The program
  444.           will pretend that the byte in the file was  indeed  XX,
  445.           which may lead to synchronization errors later on.
  446.  
  447.      Warning: No expansion for X
  448.           The WP file contained the token X, but  the  configura-
  449.           tion file did not contain any expansion text for it.  A
  450.           null expansion was assumed.
  451.  
  452.      Warning: No expansion for XX (c)
  453.           The WP file contained the character c  (hex  code  XX),
  454.           but  the  configuration file did not contain any expan-
  455.           sion text for it.  The character was emitted unaltered.
  456.           Beware  that this may give your text formatter indiges-
  457.           tion if it does not handle eight-bit characters.
  458.  
  459.      Warning: X code not supported
  460.           The file being converted uses a code  which  _w_p_2_x  does
  461.           not  know  how  to convert.  A comment is placed in the
  462.           output file in its place.   If  you  ever  encounter  a
  463.           `WPCorp  reserved'  or  a  `WPCorp undefined' code, the
  464.           author would appreciate hearing from you.
  465.  
  466.      Internal error:  Invalid escape, %x
  467.           While processing text, _w_p_2_x noticed that  you  used  an
  468.           invalid escape.  Nothing is emitted as the escape text.
  469.           (The internal-ness is that this error is supposed to be
  470.           caught at the time the configuration file is read.)
  471.  
  472. BUGS
  473.      Naive configuration files will fail if your WP file  doesn't
  474.      nest its tags properly.  A typical case is
  475.  
  476.           [Center][B]Hello[center]
  477.           [Center]There[b][center]
  478.  
  479.      to produce a centered boldface  `Hello'.   If  you  use  the
  480.      naive encoding of
  481.  
  482.           Center="\\centerline{"
  483.           center="}\n"
  484.           Bold="{\\bf "
  485.           bold="}"
  486.  
  487.      then this will expand to
  488.  
  489.           \centerline{{\bf Hello}
  490.           \centerline{There}}
  491.  
  492.      WordPerfect has no clean concept of grouping;  it  lets  you
  493.      change  fonts  at  any  time and let those changes propagate
  494.      outside the current environment.   (With  the  exception  of
  495.      headers, footers, footnotes, and endnotes.)
  496.  
  497.      Now sure, you could write complicated configuration  strings
  498.      to  try  to handle this `properly', but it'd probably not be
  499.      worth the trouble.  After all, the purpose is not to perform
  500.      a  perfect  conversion,  but  rather  to  produce a _r_e_a_d_a_b_l_e
  501.      conversion, which can then be massaged by hand to produce  a
  502.      perfect manuscript.
  503.  
  504.      Another potential problem is combined attributes, like bold-
  505.      face underline.  Under a naive configuration,
  506.  
  507.           [B]Boldface [U]Underlined boldface[b] Underlined[u] normal.
  508.  
  509.      comes out as
  510.  
  511.       {\bf Boldface {\it Underlined boldface} Underlined\/} normal.
  512.  
  513.      which is wrong for two reasons.  One is the nesting  problem
  514.      discussed  above.   The other is that TeX font attributes do
  515.      not combine.
  516.  
  517.      Similar problems exist for other document  preparation  sys-
  518.      tems.  So be careful.
  519.  
  520. AUTHOR
  521.      Raymond Chen (raymond@math.berkeley.edu)
  522.